#import <Cocoa/Cocoa.h>
#import <QuartzCore/QuartzCore.h>		//	For animation

@interface DNAViewOld : NSView
{
	IBOutlet NSArrayController *NCUController;	
	IBOutlet NSArrayController *BlocksController;	
	IBOutlet NSArrayController *CDDController;	
	IBOutlet NSArrayController *UCEController;
	IBOutlet NSArrayController *ClusterController;	
	IBOutlet NSTextView *NCUTextView;
	
	float speed;		/* 0.0 to 100.0 percent */
	float curvature;	/* 0.0 to 100.0 percent */
	int ticks;			/* 3 to 21 ticks */
	BOOL initialSetupFinished;
	NSMutableArray *drawItemsList;
	
	/* information about the indicator pointer */
	float iStartAngle, iEndAngle;
	NSPoint iCenterPt;
	
	NSBundle*	myBundle;
	NSString*	myAppPath;
	NSString*	myAppFolderPath;
	NSString*	myDataFolderPath;
	
	NSDictionary * entities;
	
	NSEntityDescription * uceEntity;
	NSEntityDescription * ncuEntity;
	NSEntityDescription * cddEntity;
	NSEntityDescription * blocksEntity;
	
	NSSortDescriptor * uceSort;
	NSSortDescriptor * ncuSort;
	NSSortDescriptor * cddSort;
	NSSortDescriptor * blocksSort;

	NSArray * uceSortDescriptors;
	NSArray * ncuSortDescriptors;
	NSArray * cddSortDescriptors;
	NSArray * blocksSortDescriptors;
	
	NSFetchRequest * uceFetch;
	NSFetchRequest * ncuFetch;
	NSFetchRequest * cddFetch;
	NSFetchRequest * blocksFetch;

	NSArray * myBlocks;
	NSArray * myNCUs;
	NSArray * myCDDs;
	NSArray * myUCEs;
	
	float mouseScrollX;
	float mouseScrollY;
	NSPredicate * predicate;
	
	NSTimer *myDrawTimer;
	
    NSPersistentStoreCoordinator *persistentStoreCoordinator;
    NSManagedObjectModel *managedObjectModel;
    NSManagedObjectContext *managedObjectContext;
	id myDocController;
	id myDocs;

}
- (IBAction)resetView:(id)sender;


static CGPathRef createRectPath(CGRect rect);
-(void)keyDown:(NSEvent *)theEvent;

	/* accessor methods for the speed pointer setting.
	Values between 0 and 100% can be specified.  */
- (float)speed;
- (void)setSpeed:(float)value;


- (void)drawMe:(NSTimer *)timer;



	/* accessor methods for the curvature of the control.  The curvature
	value determines the shape of the control varying from a small wedge
	shape at 0% to nealy a full circle at 100%.  
	Values between 0 and 100% can be specified.  */
- (float)curvature;
- (void)setCurvature:(float)value;


	/* accessor methods for the number of tick marks drawn around
	the outside of the view.  NOTE: the actual number of tickmarks
	drawn depends on how many will fit on the screen without overlap.
	values between 3 and 21 can be specified.  */
- (int)ticks;
- (void)setTicks:(float)value;


@end
